<template>
    <div o-Container>
      <!-- created: create, -->
      <o-list v-bind:source="list.contract"
        v-bind="{ created: create, modified: modify, searched: search, deleted: del, exported: output }" />
      <o-dialog v-bind:source="panel" v-bind="{ opened: load, closed: load }">
        <template slot="content">
          <o-item v-bind:source="item.contract" v-bind="{ saved: save, backed: back }"></o-item>
        </template>
      </o-dialog>
    </div>
  </template>
  
  <script>
  export default {
    name: "CreationCenter", /* 这个name暂时不知道用啥用，根据官方文档说的是方便排错的 */
    data() {
      return {
        octopus: this.$parent.octopus,
        list: {
          contract: {
            data: {
              id: 5, // 菜单表的八爪鱼ID
              cellData: [
                { name: "CompanyID", searchKey: '=' },	// 公司ID
                { name: "Name", searchKey: 'LIKE', width: 200 },	// 合同名称
                { name: "Code", searchKey: 'LIKE' },	// 合同号
                { name: "TypeID", searchKey: '=' },	// 1:权益合作；2:权益+平台租赁；3:权益+开发；
                { name: "ServiceYears" },	// 服务年限（签署时长）
                { name: "Status", searchKey: '=' },	// 状态（1签署中；2:已签署，3:已到期）
                { name: "Signatory" },	// 签署人
                { name: "ContractEquityCount" },	// 合同的权益数
                { name: "SignTime", width: 150 },	// 合同签订日期
                { name: "StartTime", width: 150 },	// 合同生效时间
                { name: "EndTime", width: 150 },	// 合同到期时间
                { name: "FilePath" },	// 合同附件
                { name: "ID", show: false },	// ID
                { name: "UpdateTime", width: 150 },	// 修改时间
                { name: "CreateTime", width: 150 },	// 创建时间
                { name: "CreateUserID" },	// 创建人
              ],
            }
          },
        },
        item: {
          contract: {
            // 以下参数默认由组件内部创建，但是如果有需要，开发人员可在这里提前设置，组件将按照您的预期渲染。
            data: {
              id: 1188,
              value: "",
              cellData: [
                { name: "CompanyID" },	// 公司ID
                { name: "Name" },	// 合同名称
                { name: "Code" },	// 合同号
                { name: "TypeID" },	// 1:权益合作；2:权益+平台租赁；3:权益+开发；
                { name: "ServiceYears" },	// 服务年限（签署时长）
                { name: "Status" },	// 状态（1签署中；2:已签署，3:已到期）
                { name: "Signatory" },	// 签署人
                { name: "SignTime" },	// 合同签订日期
                { name: "StartTime" },	// 合同生效时间
                { name: "EndTime" },	// 合同到期时间
                { name: "FilePath" },	// 合同附件
                { name: "ID", show: false },	// ID
                { name: "UpdateTime" },	// 修改时间
                { name: "CreateTime" },	// 创建时间
                { name: "CreateUserID" },	// 创建人
              ]
            },
          },
        },
        panel: {
          visible: false,
        },
        repetition: true,
      }
    },
    methods: {
      create: function () {//弹出创建页面
        this.item.contract.data.value = null;
        this.item.contract.control.load();
        this.panel.visible = true;
      },
      output: function (data) {
        this.octopus.tips.success("下载完成。");
      },
      search: function (cell) {
      },
      modify: function (row) {//修改页面
        this.item.contract.data.value = row.ID;
        this.item.contract.control.load();
        this.panel.visible = true;
      },
      view: function (row) {
        alert("view key: " + JSON.stringify(row));
      },
      save: function (data) {// 保存
        this.octopus.tips.success(data);
        // 刷新list
        this.list.contract.control.load();
        this.back();
      },
      back: function () {
        this.panel.visible = false;
      },
      del: function (row) {
        let o = this
        // alert("del key: " + JSON.stringify(row));
        this.$confirm('此操作将永久删除该项, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.octopus.request.api.post("/Octopus/Engine/Item", {
            id: 1188, // 菜单表的八爪鱼ID
            type: "DELETE",
            value: row.ID,
            cellData: [
              { name: "ID", defaultValue: row.ID },
            ],
          },
            // 处理回调事件，通过分析data.status.code的状态来实现。
            function (data) {
              if (data.status.code === 200) {
                o.list.contract.control.load();
              } else {
                o.octopus.tips.error(data);
              }
            }
          );
          this.$message({
            type: 'success',
            message: '删除成功!'
          });
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          });
        });
      },
    },
    props: ["oData"]
  }
  </script>
  <style scoped>
  .el-message-box {
    background-color: #fff !important;
  }
  </style>
  